The application and use of bar codes and matrix codes are well known and growing. Bar codes and matrix codes are forms of "dataforms", which for present purposes are defined to include all arrangements whereby data is fixed in some form of machine readable copy. Thus, dataforms include one and two dimensional bar codes, matrix codes and graphic codes, as well as words and numbers and other symbols, which may be printed or etched on paper, plastic cards and metallic and other items. Dataforms may be printed in invisible ink, magnetically recorded via magnetic stripes or magnetic ink fonts, electromagnetically recorded via RF tags, engraved, stamped, tattooed (on skin), formed by ion doping (for semiconductor wafers) or biochemical binding, etc.
In the utilization of dataforms, data originally encoded is recovered for further use in a variety of ways. For example, a printed bar code may be optically scanned to derive reflectance values which are digitized, stored in buffer memory and subsequently decoded to recover the data encoded in the bar code. Regardless of the particular type of dataform, an image is typically acquired and stored as pixel values for further processing. An image of a bar code or matrix code existing as a graphic image can be acquired by use of a CCD scanner, a laser scanner, a CMOS camera, or other suitable device which is capable of distinguishing between different reflective values of light reflected from a dataform. Thus, for example, a bar code typically comprises black or dark colored bar type elements printed on a white or light colored background area, with white or light colored spaces between the elements of the bar code. The spaces are typically the same color as the background area, but may be of a different light color in this example. In other examples the elements of a bar code or matrix code are white or light colored and are defined by black or darker colored spaces and background area. With either arrangement, the relevant background area is typically a "quiet zone" or single color area immediately surrounding the dataform. This background area or quiet zone may be bordered by areas of multiple colors, patterns, text, etc.
For the example of black elements with white spaces and background area, pixel values of low reflective value will be representative of the elements and pixel values of high reflective value will be representative of the spaces and background area. In other applications, such as laser engraving on silicon wafers, illumination may result in a dark on light relationship in one orientation and a light on dark relationship in a different orientation, In addition to pixel values representing reflective values of light ("light" being defined as encompassing the entire electromagnetic spectrum for present purposes), in other arrangements pixel values representative of reflective values may be based upon reflection of sound waves or other mediums from a dataform of an appropriate configuration. In any such arrangement in which a dataform is arranged to be read on the basis of reflective values, such reflective values may typically be stored as pixel values in an image buffer memory or other storage medium in bit map or other form which, while representative of pixel values for an image, may utilize any appropriate data storage format.
In many applications of dataforms, such as discussed above, successful reading of a dataform is dependent upon one or more of the following (i) recognizing the presence of a dataform (ii) determining whether the dataform is dark on a light background area or light on a dark background area, and (iii) determining the actual location of the dataform within an image area. These typically do not present difficult problems where a laser scanner is to be manually pointed at a dataform printed in black on a white background area, for example. However, where a dataform is printed in "invisible" ink for use with light outside the visible spectrum or is otherwise not visible, or where dataforms which may be randomly positioned on objects are to be read on an automated, unattended basis, for example, considerations such as recognizing the presence, dark/light color and location of a dataform can be very important. Even in manual operation, capabilities such as dataform location recognition may be important in allowing operation with greater speed, by lower skilled employees, etc.
It is therefore an object of this invention to provide new and improved dataform recognition methods and systems, and such methods and systems which enable one or more of:
(i) recognition of the presence of a dataform which may be present in an image area, PA1 (ii) determination of whether elements of a dataform appear dark or light on a contrasting background area, PA1 (iii) determination of the location of the dataform within an image area, and PA1 (iv) identification of the type of dataform present within an image area. PA1 (a) sampling pixel values, each representative of a reflective value of an incremental part of a first window section of the image area which may include a portion of a dataform, to derive data indicative of relative levels of occurrence of pixel values representative of the presence of different reflective values within the window section; PA1 (b) categorizing the window section in one of the following groups (i) a first group for which the derived data indicates the presence of at least two principal reflective values (a relatively higher value and a relatively lower value), (ii) a second group for which the derived data indicates the presence of one principal reflective value (representative of the background area) and (iii) a third group for other window sections; PA1 (c) repeating steps (a) and (b) for a plurality of additional window sections of the image area; PA1 (d) utilizing at least one of such first and second groups of window sections (with the derived data as relevant) for carrying out at least one of the following steps: PA1 (x) recognizing the presence of the dataform in the image, based upon the presence of such first group of window sections characterized by at least two principal reflective values; PA1 (y) determining whether the elements of the dataform have a reflective value higher or lower than the distinct background area reflective value, based upon analysis of which of the relatively higher and lower values of such first group of window sections is most distinct from the one principal reflective value of such second group (which is representative of the background area); and PA1 (z) determining the location of the dataform, based upon analysis of at least one of: the composite positions of window sections of such first group (which represent portions of the dataform), and a frame effect provided by the composite positions of window sections of such second group (which represent the background area). PA1 (a) sampling pixel values, each representative of a reflective value of an incremental part of an image area including at least a portion of the dataform, to derive data indicative of relative levels of occurrence of pixel values representative of the presence of different reflective values; PA1 (b) comparing the derived data to reference data representative of at least one type of dataform; and PA1 (c) providing an output indication of correspondence between the derived data and the reference data.